export default {
  themeSystem: "System Theme",
  themeDark: "Dark Theme",
  themeLight: "Light Theme",
  restart: "Restart",
  restartTitle: "Confirm Restart",
  restartDescription:
    "The service will be restarted, please confirm whether to continue",
  restartSuccess: "Restart Success, the program will be restarted in 1 minute",
  save: "Save",
  remove: "Remove",
  removeConfirm: "Are you sure to remove the config?",
  removeTips: "The config can't be recovered",
  confirm: "Confirm",
  cancel: "Cancel",
  fetchFail: "Fetch Config Fail",
  moreSettings: "More Settings",
  lessSettings: "Less Settings",
  fetchTomlFailTitle: "Fetch Toml Fail",
  copyTomlFail: "Copy Toml Fail",
  copyTomlSuccess: "Copy Toml Success",
  tomlTitle: "Pingap Toml Config",
  tomlDescription: "The toml config of pingap",
  saveFailTitle: "Save Config Fail",
  saveSuccessTitle: "Save Config Success",
  saveSuccessDescription: "Config is saved to storage",
  removeFailTitle: "Remove Config Fail",
  removeSuccessTitle: "Remove Config Success",
  removeSuccessDescription: "Config is removed from storage",
  includes: "Includes",
  includesPlaceholder: "Select the include config",
  full: "Full",
  original: "Original",
  import: "Import",
  importFail: "Import Toml Fail",
  importSuccess: "Import Toml Success",
  aesGcm: "AES-GCM",
  aesTips: "Use AES-GCM to encrypt and decrypt data",
  encrypt: "Encrypt",
  decrypt: "Decrypt",
  secret: "Secret",
  base64: "Base64",
  base64Tips: "Encode or decode base64 data",
  encode: "Encode",
  decode: "Decode",
  value: "Value",
  result: "Result",
  nav: {
    basic: "Basic",
    server: "Server",
    location: "Location",
    upstream: "Upstream",
    plugin: "Plugin",
    certificate: "Certificate",
    storage: "Storage",
    searchPlaceholder: "Input the keyword",
  },
  login: {
    title: "Login",
    description: "Please enter the administrator account and password.",
    account: "Account",
    password: "Password",
    submit: "Login",
    fail: "Login Fail",
  },
  home: {
    dashboard: "Dashboard",
    basic: "Basic Information",
    pid: "Process Id",
    threads: "Threads",
    accepted: "Accepted",
    processing: "Processing",
    fdCount: "Fd",
    tcpCount: "Tcp Connections",
    tcp6Count: "Tcp6 Connections",
    memory: "Memory",
    startTime: "Start Time",
    arch: "Arch",
    kernel: "Kernel",
    user: "Daemon User",
    group: "Daemon Group",
    configHash: "Config Hash",
    enabledTracing: "Enable Tracing",
    enabledFull: "Enable Full Features",
    rustc: "Rustc",
    git: "Git Hash",
    machineCpu: "Machine CPU",
    machineMemory: "Machine Memory",
    yes: "Yes",
    no: "No",
    to: "to",
    locationSubTitle: "Sort by weight",
  },
  basic: {
    title: "Basic",
    name: "Name",
    namePlaceholder: "Input the name of pingap process",
    threads: "Threads",
    threadsPlaceholder: "Input the default thread count",
    workStealing: "Work Stealing",
    listenerTasksPerFd: "Listener Tasks Per Fd",
    listenerTasksPerFdPlaceholder:
      "Input the listener tasks per fd(default: 1)",
    upstreamKeepalivePoolSize: "Upstream Keepalive Pool",
    upstreamKeepalivePoolSizePlaceholder:
      "Input the pool size of upstream keepavlie(default: 128)",
    logLevel: "Log Level",
    logLevelPlaceholder: "Select the log level of pingap : Input custom log filter(e.g. global_level,target_a=level_a,target_b=level_b)",
    logBufferedSize: "Log Buffered Size",
    logBufferedSizePlaceholder: "Input the buffer size for log(e.g. 64kb, 1mb)",
    logFormatJson: "Json Log Format",
    logCompressAlgorithm: "Log Compress Algorithm",
    logCompressAlgorithmPlaceholder: "Select the log compress algorithm",
    logCompressLevel: "Log Compress Level",
    logCompressLevelPlaceholder: "Input the log compress level(e.g. 9)",
    logCompressDaysAgo: "Log Compress Days Ago",
    logCompressDaysAgoPlaceholder: "Input the log compress days ago(e.g. 7)",
    logCompressTimePointHour: "Log Compress Time Point Hour",
    logCompressTimePointHourPlaceholder:
      "Input the time point hour for log compress(e.g. 0)",
    gracePeriod: "Grace Period",
    gracePeriodPlaceholder: "Input grace period for exit(e.g. 30s, 1m)",
    gracefulShutdownTimeout: "Graceful Shutdown Timeout",
    gracefulShutdownTimeoutPlaceholder:
      "Input graceful shutdown timeout(e.g. 10s)",
    autoRestartCheckInterval: "Auto Restart Check Interval",
    autoRestartCheckIntervalPlaceholder:
      "Input auto restart check interval(e.g. 30s)",
    pidFile: "Pid File",
    pidFilePlaceholder: "Input pid file path(e.g. /opt/pingap/pingap.pid)",
    upgradeSock: "Upgrade Sock For Daemon",
    upgradeSockPlaceholder: "Input upgrade unix sock for daemon",
    user: "User For Daemon",
    userPlaceholder: "Input user for daemon",
    group: "Group For Daemon",
    groupPlaceholder: "Input group for daemon",
    webhookType: "Webhook Type",
    webhookTypePlaceholder: "Select webhook type",
    webhookNotifications: "Webhook Notifications",
    webhookNotificationsPlaceholder: "Select webhook notifications",
    webhook: "Webhook Http Url",
    webhookPlaceholder: "Input the url for webhook notification",
    sentry: "Sentry Connect Url",
    sentryPlaceholder: "Input the connect url of sentry",
    pyroscope: "Pyroscope Connect Url",
    pyroscopePlaceholder: "Input the connect url of pyroscope",
    errorTemplate: "Error Template",
    errorTemplatePlaceholder:
      "Input the error template, it should be html or json",
  },
  server: {
    name: "Name",
    namePlaceholder: "Input the name of server",
    server: "Server",
    serverPlaceholder: "Select the server",
    addr: "Listen Addresses",
    addrPlaceholder: "Input listen addresses, separated by comma",
    locations: "Locations",
    locationsPlaceholder: "Select the locations for server",
    threads: "Threads",
    threadsPlaceholder: "Input the thread count of server",
    globalCertificates: "Using Global Certificates",
    accessLog: "Access Log Format",
    accessLogPlaceholder: "Input the format layout for access",
    enabledH2: "Enable Http2(h2c)",
    enabledServerTiming: "Enable Server Timing",
    downstreamReadTimeout: "Downstream Read Timeout",
    downstreamReadTimeoutPlaceholder:
      "Input the read timeout for downstream(e.g. 30s)",
    downstreamWriteTimeout: "Downstream Write Timeout",
    downstreamWriteTimeoutPlaceholder:
      "Input the write timeout for downstream(e.g. 10s)",
    reusePort: "Enable SO_REUSEPORT",
    modules: "Http Modules",
    modulesPlaceholder: "Select http modules for server",
    tlsCipherList: "Tls Cipher List",
    tlsCipherListPlaceholder:
      "Input the cipher list for protocols before tlsv1.3",
    tlsCiphersuites: "Tls Ciphers",
    tlsCiphersuitesPlaceholder: "Input the ciphers for protocol tlsv1.3",
    tlsMinVersion: "Min Tls",
    tlsMaxVersion: "Max Tls",
    tcpFastOpen: "Tcp Fast Open",
    tcpFastOpenPlaceholder: "Input the backlog size of tcp fast open(e.g. 10)",
    tcpUserTimeout: "Tcp User Timeout",
    tcpUserTimeoutPlaceholder:
      "Input the user timeout for tcp(e.g. 30s), only for linux",
    tcpIdle: "Tcp Keepalive Idle",
    tcpIdlePlaceholder: "Input tcp keepalive idle duration(e.g. 2m)",
    tcpInterval: "Tcp Keepalive Interval",
    tcpIntervalPlaceholder: "Input tcp keepalive interval duration(e.g. 30s)",
    tcpProbeCount: "Tcp Keepalive Probe Count",
    tcpProbeCountPlaceholder: "Input tcp keepalive probe count(e.g. 9)",
    prometheusMetrics: "Prometheus",
    prometheusMetricsPlaceholder:
      "Input the pull path of push gateway for prometheus",
    otlpExporter: "Otlp Exporter",
    otlpExporterPlaceholder: "Input the exporter for opentelemetry",
    remark: "Remark",
  },
  location: {
    name: "Name",
    namePlaceholder: "Input the name of location",
    location: "Location",
    locationPlaceholder: "Select the location",
    host: "Host",
    hostPlaceholder:
      "Input the host for location, multiple hosts separated by comma",
    path: "Path",
    pathPlaceholder:
      "Input the path for location, supports regexp, prefix and equal mode",
    upstream: "Upstream",
    upstreamPlaceholder:
      "Select the upstream for location : Input the upstream name",
    rewrite: "Path Rewrite",
    rewritePlaceholder: "Input the rewrite for path(e.g. ^/api/ /)",
    proxySetHeaders: "Proxy Set Headers",
    proxySetHeadersPlaceholder:
      "Input the http header name:Input the http header value",
    proxyAddHeaders: "Proxy Add Headers",
    proxyAddHeadersPlaceholder:
      "Input the http header name : Input the http header value",
    maxRetries: "Max Retries",
    maxRetriesPlaceholder: "Input the max retries to upstream",
    maxRetryWindow: "Max Retry Window",
    maxRetryWindowPlaceholder: "Input the max retry window to upstream",
    enableReverseProxyHeaders: "Enable Reverse Proxy Headers",
    weight: "Weight",
    weightPlaceholder: "Input the weight of location",
    clientMaxBodySize: "Client Max Body Size",
    clientMaxBodySizePlaceholder: "Input the max body size(e.g. 1mb)",
    maxProcessing: "Max Processing Requests",
    maxProcessingPlaceholder: "Input the max processing request count",
    plugins: "Plugins",
    pluginsPlaceholder: "Select the plugins for location",
    grpcWeb: "Grpc Web",
    remark: "Remark",
  },
  upstream: {
    name: "Name",
    namePlaceholder: "Input the name of upstream",
    upstream: "Upstream",
    upstreamPlaceholder: "Select the upstream",
    addrs: "Upstream Address",
    addrsPlaceholder:
      "Input the address of upstream(e.g. 127.0.0.1:3000) : Input the weight of upstream",
    discovery: "Service Discovery",
    discoveryPlaceholder: "Select a discovery for upstream",
    updateFrequency: "Discovery Update Frequency",
    updateFrequencyPlaceholder:
      "Input the update frequency of discovery(e.g. 30s)",
    dnsServer: "Dns Server",
    dnsServerPlaceholder:
      "Input the dns server for dns discovery(e.g. 8.8.8.8,1.1.1.1)",
    dnsDomain: "Dns Domain",
    dnsDomainPlaceholder: "Input the dns domain for dns discovery",
    dnsSearch: "Dns Search",
    dnsSearchPlaceholder:
      "Input the dns search for dns discovery, separated by comma",
    algo: "Load Balancer Algorithm",
    algoPlaceholder: "Input algorithm for load balance(e.g. hash:ip)",
    healthCheck: "Health Check",
    healthCheckPlaceholder:
      "Input upstream health check url, supports http or tcp",
    connectionTimeout: "Connection Timeout",
    connectionTimeoutPlaceholder:
      "Input the connection timeout for upstream(e.g. 30s)",
    totalConnectionTimeout: "Total Connection Timeout",
    totalConnectionTimeoutPlaceholder:
      "Input the total connection timeout for upstream(e.g. 1m)",
    readTimeout: "Read Timeout",
    readTimeoutPlaceholder: "Input the read timeout for upstream(e.g. 30s)",
    writeTimeout: "Write Timeout",
    writeTimeoutPlaceholder: "Input the write timeout for upstream(e.g. 10s)",
    idleTimeout: "Idle Timeout",
    idleTimeoutPlaceholder:
      "Input the idle timeout for upstream connection(e.g. 2m)",
    alpn: "Alpn",
    sni: "Sni",
    sniPlaceholder: "Input server name indication for tls protocol",
    verifyCert: "Verify Certificate",
    ipv4Only: "Ipv4 Only",
    enableTracer: "Enable Tracer",
    enableBackendStats: "Enable Backend Stats",
    backendFailureStatusCode: "Backend Failure Status Code",
    backendFailureStatusCodePlaceholder: "Input the backend failure status code(e.g. 400,500,502,503,504)",
    backendStatsInterval: "Backend Stats Interval",
    backendStatsIntervalPlaceholder: "Input the backend stats interval(e.g. 60s)",
    circuitBreakMaxConsecutiveFailures: "Circuit Break Max Consecutive Failures",
    circuitBreakMaxConsecutiveFailuresPlaceholder: "Input the max consecutive failures for circuit break",
    circuitBreakMaxFailurePercent: "Circuit Break Max Failure Percent(Only input integer)",
    circuitBreakMaxFailurePercentPlaceholder: "Input the max failure percent for circuit break",
    circuitBreakMinRequestsThreshold: "Circuit Break Min Requests Threshold",
    circuitBreakMinRequestsThresholdPlaceholder: "Input the min requests threshold for circuit break",
    circuitBreakHalfOpenConsecutiveSuccessThreshold: "Circuit Break Half Open Consecutive Success Threshold",
    circuitBreakHalfOpenConsecutiveSuccessThresholdPlaceholder: "Input the half open consecutive success threshold for circuit break",
    circuitBreakOpenDuration: "Circuit Break Open Duration",
    circuitBreakOpenDurationPlaceholder: "Input the open duration for circuit break",
    tcpFastOpen: "Tcp Fast Open",
    tcpRecvBuf: "Tcp Recv Buf",
    tcpRecvBufPlaceholder: "Input the tcp receive buffer limit size",
    tcpUserTimeout: "Tcp User Timeout",
    tcpUserTimeoutPlaceholder:
      "Input the user timeout for tcp(e.g. 30s), only for linux",
    tcpIdle: "Tcp Idle",
    tcpIdlePlaceholder: "Input the idle timeout for tcp connection",
    tcpInterval: "Tcp Keepalive Probe Interval",
    tcpIntervalPlaceholder: "Input the interval for tcp keepalive probe",
    tcpProbeCount: "Tcp Probe Count",
    tcpProbeCountPlaceholder: "Input the probe count(e.g. 9)",
    remark: "Remark",
  },
  certificate: {
    name: "Name",
    namePlaceholder: "Input the name of certificate",
    certificate: "Certificate",
    certificatePlaceholder: "Select the certificate",
    tlsCert: "Tls Cert",
    tlsCertPlaceholder: "Input the pem format certificate of tls",
    tlsKey: "Tls Key",
    tlsKeyPlaceholder: "Input the pem format key of tls",
    tlsChain: "Tls Chain",
    tlsChainPlaceholder: "Input the pem format chain of tls",
    domains: "Acme Domains",
    domainsPlaceholder:
      "Input the domains of acme, multiple domains separated by comma",
    acme: "Acme",
    isDefault: "Default Certificate",
    dnsChallenge: "Dns 01 Challenge",
    dnsProvider: "Dns Provider",
    dnsServiceUrl: "Dns Api Service Url",
    dnsServiceUrlPlaceholder:
      "Input dns api service url for update dns txt challenge",
    isCa: "Certificate Authority",
    bufferDays: "Buffer Days",
    bufferDaysPlaceholder: "Input the buffer days for certificate",
  },
  plugin: {
    name: "Name",
    namePlaceholder: "Input the name of plugin",
    plugin: "Plugin",
    pluginPlaceholder: "Select the plugin",
    category: "Category",
    step: "Plugin Step",
    statsPath: "Stats Path",
    statsPathPlaceholder: "Input the path for stats",
    pingPath: "Ping Path",
    pingPathPlaceholder: "Input the path for ping health check",
    adminPath: "Admin Path",
    adminPathPlaceholder: "Input the path for admin plugin",
    adminMaxAge: "Max Age",
    adminMaxAgePlaceholder: "Input the max session age for login",
    adminIpFailLimit: "Ip Fail Limit",
    adminIpFailLimitPlaceholder: "Input the fail ip limit count",
    adminAuthorization: "Authorization",
    adminAuthorizationPlaceholder:
      "Base64 value for basic auth(base64(user:pass))",
    dirPath: "Directory",
    dirPathPlaceholder: "Input the path for static serve",
    dirIndex: "Index",
    dirIndexPlaceholder: "Input the index file(e.g. index.html)",
    dirChunkSize: "Chunk Size",
    dirChunkSizePlaceholder:
      "Input the chunk size for file response(e.g. 16kb)",
    dirAutoIndex: "Support Director Index",
    dirMaxAge: "Cache Max Age",
    dirMaxAgePlaceholder: "Input the max age for cache control(e.g. 24h)",
    dirCachePrivate: "Private Cache",
    dirCharset: "Charset",
    dirCharsetPlaceholder: "Input the charset of file response",
    dirDownload: "Support Download",
    dirHeaderName: "Response Headers",
    dirHeaderNamePlaceholder:
      "Input the response header name : Input the response header value",
    mockPath: "Path",
    mockPathPlaceholder: "Input the path for mock",
    mockStatus: "Status",
    mockStatusPlaceholder: "Input the status for mock response",
    mockResponseDelay: "Delay",
    mockResponseDelayPlaceholder: "Input the dalay for mock(e.g. 5s)",
    mockHeaderName: "Headers",
    mockHeaderNamePlaceholder: "Input the header name : Input the header value",
    mockData: "Data",
    mockDataPlaceholder: "Input the data for mock response",
    redirectPrefix: "Prefix",
    redirectPrefixPlaceholder: "Input prefix url append to redirect url",
    redirectHttps: "Https",
    cacheDirectory: "Directory",
    cacheDirectoryPlaceholder: "Input the directory of cache",
    cacheLock: "Lock",
    cacheLockPlaceholder:
      "Input the lock duration lookups to the same asset(e.g. 2s)",
    cacheMaxFileSize: "Max File Size",
    cacheMaxFileSizePlaceholder:
      "Input the cache max file size of http response(e.g. 1mb)",
    cacheNamespace: "Namespace",
    cacheNamespacePlaceholder: "Input the namespace of cache",
    cacheMaxTtl: "Max Ttl",
    cacheMaxTtlPlaceholder: "Input the max cache ttl of cache(e.g. 1h)",
    cacheEviction: "Support Eviction",
    cachePredictor: "Support Predictor",
    checkCacheControl: "Check Cache-Control response header",
    cacheSkip: "Skip Cache",
    cacheSkipPlaceholder: "Input the regex for skip",
    cacheHeaders: "Headers",
    cacheHeadersPlaceholder: "Input the header for cache key",
    cachePurgeIpList: "Ip Allow Purge",
    cachePurgeIpListPlaceholder: "Input the ip which allow purge",
    requestIdAlgo: "Algorithm",
    requestIdAlgoPlaceholder: "Select the algorithm of request id",
    requestIdLength: "Size",
    requestIdLengthPlaceholder: "Input the size of request id(for nanoid)",
    requestIdHeaderName: "Header Name",
    requestIdHeaderNamePlaceholder: "Input the header name of request id",
    compressionGzipLevel: "Gzip Level",
    compressionGzipLevelPlaceholder: "Input the gzip level(1-9)",
    compressionBrLevel: "Brotli Level",
    compressionBrLevelPlaceholder: "Input the brotli level(1-11)",
    compressionZstdLevel: "Zstd Level",
    compressionZstdLevelPlaceholder: "Input the zstd level(1-22)",
    compressionMinLength: "Min Length",
    compressionMinLengthPlaceholder: "Input the min length of response body to be compressed",
    compressionDecompression: "Support Decompression",
    compressionMode: "Mode",
    acceptEncodingList: "Accept Encoding",
    acceptEncodingListPlaceholder:
      "Input the request accept encoding(e.g. zstd, br)",
    acceptEncodingOnlyOne: "Supports One Encoding",
    keyAuthQuery: "Query",
    keyAuthQueryPlaceholder: "Input the name of query",
    keyAuthHeader: "Header",
    keyAuthHeaderPlaceholder: "Input the name of header",
    keyAuthFailDelay: "Fail Delay",
    keyAuthFailDelayPlaceholder: "Input the delay duration of fail auth",
    keyAuthHideCredentials: "Hide Credentials",
    keyAuthValues: "Auth Values",
    keyAuthValuesPlaceholder: "Input the value of auth value",
    basicAuthList: "Basic Authorization",
    basicAuthListPlaceholder:
      "Input basic authorization, base64(account:password)",
    basicAuthFailDelay: "Fail Delay",
    basicAuthFailDelayPlaceholder: "Input the delay duration of fail auth",
    basicAuthHideCredentials: "Hide Credentials",
    jwtAuthHeader: "Header",
    jwtAuthHeaderPlaceholder: "Input the name of header",
    jwtAuthQuery: "Query",
    jwtAuthQueryPlaceholder: "Input the name of query",
    jwtAuthCookie: "Cookie",
    jwtAuthCookiePlaceholder: "Input the name of cookie",
    jwtSignPath: "Sign Path",
    jwtSignPathPlaceholder: "Input the jwt sign path",
    jwtAuthFailDelay: "Fail Delay",
    jwtAuthFailDelayPlaceholder: "Input the delay duration of fail auth",
    jwtSignAlgorithm: "Algorithm",
    jwtAuthSecret: "Secret",
    jwtAuthSecretPlaceholder: "Input the secret for jwt",
    limitCategory: "Type",
    limitTag: "Category",
    limitKey: "Key",
    limitKeyPlaceholder: "Input the name of limit key",
    limitMax: "Max",
    limitMaxPlaceholder: "Input the max value of limit",
    limitInterval: "Interval",
    limitIntervalPlaceholder: "Input the interval of limit",
    limitWeight: "Weight",
    limitWeightPlaceholder:
      "Input the weight of current slot(0-100), default: 50",
    ipRestrictionMode: "Restriction Mode",
    ipList: "Ip List",
    ipListPlaceholder: "Input the ip for restriction",
    ipRestrictionMessage: "Message",
    ipRestrictionMessagePlaceholder: "Input the message for restriction",
    refererRestrictionMode: "Restriction Mode",
    refererList: "Referer List",
    refererListPlaceholder: "Input the referer for restriction",
    refererRestrictionMessage: "Message",
    refererRestrictionMessagePlaceholder: "Input the message for restriction",
    uaRestrictionMode: "Restriction Mode",
    uaList: "User Agent List",
    uaListPlaceholder: "Input the user agent for restriction",
    uaRestrictionMessage: "Message",
    uaRestrictionMessagePlaceholder: "Input the message for restriction",
    csrfTokenPath: "Token Path",
    csrfTokenPathPlaceholder: "Input the token path for csrf",
    csrfName: "Name",
    csrfNamePlaceholder: "Input the name of csrf",
    csrfKey: "key",
    csrfKeyPlaceholder: "Input the key of csrf",
    csrfTtl: "Ttl",
    csrfTtlPlaceholder: "Input the ttl of csrf",
    corsPath: "Path",
    corsPathPlaceholder: "Input the path for cors",
    corsAllowOrigin: "Allow Origin",
    corsAllowOriginPlaceholder: "Input the allow origin header",
    corsAllowMethods: "Allow Methods",
    corsAllowMethodsPlaceholder: "Input the allow methods header",
    corsAllowHeaders: "Allow Headers",
    corsAllowHeadersPlaceholder: "Input the allow headers",
    corsAllowCredentials: "Allow Credentials",
    corsMaxAge: "Max Age",
    corsMaxAgePlaceholder: "Input the max age",
    corsExposeHeaders: "Expose Headers",
    corsExposeHeadersPlaceholder: "Input the expost headers",
    responseHeadersAddHeader: "Add Header",
    responseHeadersAddHeaderPlaceholder:
      "Input the header name : Input the header value",
    responseHeadersSetHeader: "Set Header",
    responseHeadersSetHeaderPlaceholder:
      "Input the header name : Input the header value",
    responseHeadersRenameHeader: "Rename Header",
    responseHeadersRenamePlaceholder:
      "Input the original header name : Input the new header name",
    responseHeadersSetHeaderNotExists: "Set Header If Not Exists",
    responseHeadersSetHeaderNotExistsPlaceholder:
      "Input the header name : Input the header value",
    responseHeadersRemoveHeader: "Remove Header",
    responseHeadersRemoveHeaderPlaceholder: "Input the header name",
    responseHeadersMode: "Mode",
    responseHeadersModePlaceholder: "Select the mode of response headers",
    combinedAuthAuthorizations: "Authorizations",
    combinedAuthAuthParameters: "Parameters",
    combinedAuthAuthAppIdPlaceholder: "Input the app id",
    combinedAuthAuthIpListPlaceholder: "Input the ip list",
    combinedAuthAuthSecretPlaceholder: "Input the secret",
    combinedAuthAuthDeviationPlaceholder: "Input the deviation(e.g. 10)",
    combinedAuthAuthAdd: "Add",
    combinedAuthAuthRemove: "Remove",
    subFilterPath: "Path",
    subFilterPathPlaceholder: "Input the path for sub filter(e.g. ^/api/)",
    subFilterStatusCodes: "Status Codes",
    subFilterStatusCodesPlaceholder: "Input the status codes for sub filter(e.g. 200,201,202)",
    subFilterFilters: "Filters",
    subFilterFiltersPlaceholder:
      "Input the filters for sub filter(e.g. subs_filter 'http://pingap.io' 'https://pingap.io/api' ig)",
    imageOptimOutputTypes: "Output Types",
    imageOptimOutputTypesPlaceholder:
      "Input the output types(e.g. avif,webp), png and jpeg are always enabled",
    imageOptimPngQuality: "Png Quality",
    imageOptimPngQualityPlaceholder: "Input the png quality(e.g. 80)",
    imageOptimJpegQuality: "Jpeg Quality",
    imageOptimJpegQualityPlaceholder: "Input the jpeg quality(e.g. 80)",
    imageOptimAvifQuality: "Avif Quality",
    imageOptimAvifQualityPlaceholder: "Input the avif quality(e.g. 75)",
    imageOptimAvifSpeed: "Avif Speed",
    imageOptimAvifSpeedPlaceholder: "Input the avif speed(e.g. 3)",
    trafficSplittingUpstream: "Upstream",
    trafficSplittingUpstreamPlaceholder:
      "Input the upstream for traffic splitting",
    trafficSplittingWeight: "Weight",
    trafficSplittingWeightPlaceholder: "Input the weight of traffic splitting",
    trafficSplittingStickiness: "Stickiness",
    trafficSplittingStickinessPlaceholder:
      "Input the stickiness of traffic splitting",
    trafficSplittingStickyCookie: "Sticky Cookie",
    trafficSplittingStickyCookiePlaceholder:
      "Input the sticky cookie for traffic splitting",
    trafficSplittingStickyHeader: "Sticky Header",
    trafficSplittingStickyHeaderPlaceholder:
      "Input the sticky header for traffic splitting",
    trafficSplittingMatcher: "Matcher",
    trafficSplittingMatcherPlaceholder:
      "Input the matcher for traffic splitting",
    remark: "Remark",
  },
  storage: {
    name: "Name",
    namePlaceholder: "Input the name of storage",
    storage: "Storage",
    storagePlaceholder: "Select the storage",
    category: "Category",
    categoryPlaceholder: "Select the category of storage",
    secret: "Secret",
    secretPlaceholder: "Input the secret for encrypt value",
    value: "Value",
    remark: "Remark",
  },
  history: {
    title: "History",
    description: "The history of the config",
    show: "Show History",
    noHistory: "No history",
    restore: "Restore",
    restoreSuccess: "Configuration restored successfully",
  },
};
